Spread spectrum communication is a method of transmitting information in which the bandwidth of the signal is deliberately increased, or spread out, over a much wider range than would normally be occupied with conventional modulation transmission. In direct sequence systems, the carder signal is modulated by code sequences. The code sequences are sequences of binary units, called chips, and have a fixed length, called the chip length.
A particular code sequence is assigned to each bit of information that is to be transmitted. The code signals are typically quite long relative to the bit of information to be transmitted. For example, if the information to be sent is in binary or digital form, a particular code sequence will be assigned to a "0" and a different code sequence will be assigned to a "1". Each code sequence might be 63, 127 or 255 chips long. System using more than two information symbols would require additional code sequences.
As the modulated signal is received, the signal is correlated. That is, the receiving unit is looking for the particular codes used to modulate the carder signal. The receiving unit simultaneously and continuously looks for all of the possible codes that could be carded on the carder signal. This task is accomplished by the receiving unit through the use of a series of correlators. Each possible code has its own correlator. Each correlator is looking chip by chip at the sequences as they are received. The output of the correlator is an a signal whose magnitude is determined by how much correlation there is between the sequence received and the sequence it is looking for. If the chip length is n, then the correlator is always looking at the most recent sequence of n chips that have been received.
The choice of the codes used in spread spectrum communication is very important. Two important considerations in determining what represents a good code are its autocorrelation and its cross-correlation characteristics. Autocorrelation refers to the amount of correlation the code has with itself that exists while the code is being transferred into the correlator. Thus, assume that the signal being received by the correlator is the same sequence, of chip length n, repeated over and over. Autocorrelation refers to the amount of correlation that exists when the most recent n chips consists partially of the end of the previous sequence and partially of the beginning of the new sequence. Codes must be designed to minimize the amount of correlation that occurs during transition between the first sequence and the second sequence and thereby minimize the chance of false correlation.
Cross-correlation refers to the amount of correlation that exists between the different codes in a particular system. For example, in a binary system where a first sequence represents a "0" and a second sequence represents a "1", cross-correlation refers to the amount of correlation that will be detected by one of the correlators when the sequence received is for the other sequence. As a practical matter, cross-correlation cannot be completely eliminated and thus when one sequence is received, and thus a larger correlation signal is outputted by the correlator looking for that sequence, smaller correlation signals are also outputted by the other correlators in the system.
Decoding is accomplished by observing the output of the correlators. In an ideal system, as soon as the entire sequence for a given piece of data has been completely transferred into the correlator a perfect match, that is, complete correlation, would be accomplished. However, in a practical setting, there is a considerable amount of noise which can cause interference in the signal. Thus a match is usually detected by determining a certain threshold that must be met. For the decoder to actually determine that a certain piece of data was indeed sent, some threshold amount of correlation must take place. Thus it can be seen why it is necessary to keep the amount of autocorrelation at a minimum.
In some systems, multiple threshold detections are used. This is an attempt to compensate for the cross-correlation factor. Without multiple thresholds, in a particularly noisy environment, it would be possible for the decoder to determine that none of the sequences had matched or, conversely, that multiple sequences had matched. The use of more than one threshold helps to alleviate this problem. If there are two correlation thresholds, a high and a low, then the first situation described might be avoided if one signal only breaks the lower threshold while the other breaks neither. The decoder could assume that while only a low threshold was detected, since the other was too low to break either thresholds, then the signal which broke low threshold was the signal sent. The problem of multiple sequence detection might be solved if the real signal breaks the high correlation threshold while the other signal only breaks the low. In this case the decoder can assume that it was the signal that broke the high threshold that was sent.
While the multiple threshold decoder systems help to alleviate some of the false or incorrect sequence detect problems, they do not eliminate them completely. For example, in a noisy environment, when no real signal should actually be detected, the interference from the noise might cause one of the low thresholds to be triggered while the other is not. The decode system then must try to determine whether or not the signal is real in addition to determining which of the signals has been detected. Furthermore, determining the proper level of the thresholds is extremely difficult. The thresholds must be set low enough to detect noise deteriorated signals but not so low as to give false indications. Additionally, the thresholds must be set high enough to assure that a real match has occurred, but not too high for fear of missing a signal sent. Furthermore, the different thresholds must be different enough so as to actually have them signify different degrees of correlation. These differences must be determined with the above considerations in mind.
It should be obvious that setting the thresholds is a difficult task to begin with. It is, however, further complicated by the fact that the environment in which the system must work is constantly changing. Thus, a particular system which may work in one location one time, might not work in the same location the next time without an adjustment of the thresholds. Furthermore, the problem is increased when the spread spectrum system is moved to another location which is constitutes a different environment completely.
Thus, there is a need for a decoding system for spread spectrum communications which does not rely on the use of one or more thresholds for determining the signal which has transmitted.